package com.kazusa.myservlet;

import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.MultipartConfig;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.Part;

import java.io.IOException;

/*
* 使用注解 @MultipartConfig 将一个 Servlet 标识为支持文件上传。 Servlet 将 multipart/form-data
的 POST 请求封装成 Part，通过 Part 对上传的文件进行操作
* */


@WebServlet("/FileUpload")
@MultipartConfig//如果是文件上传，必须设置该注解
public class FileUpload extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        System.out.println("文件上传");
        //获取普通表单项
        String name=request.getParameter("uname");
        System.out.println("用户名："+name);

        //获取上传的文件,获取part对象
        Part part=request.getPart("file");
        //通过part对象得到上传的文件名
        String fileName=part.getSubmittedFileName();
        //得到文件存放的路径
        String filePath=request.getServletContext().getRealPath("/");
        System.out.println("文件存放路径："+filePath);
        //上传文件到指定路径
        part.write(filePath+"/"+fileName);
    }
}
